1. Field of the Invention
The present invention relates to digital communication systems, and more particularly to packet-based digital communication systems.
2. Description of the Related Art
A communication system has a transmitter that sends data to a receiver. In a packet-based digital communication system, the transmitter encapsulates the digital data for transmission in data packets. Many data-encapsulation systems and methods are known in the art. A typical data packet comprises (i) a payload section that contains payload data, i.e., data for transmission to the receiver and (ii) a header section that contains routing and other useful information regarding the payload data. As used herein and unless otherwise indicated, the term “header” refers to data in a data packet that is not the payload data, wherein the header data may be located before and/or after the payload data in the data packet. Thus, the term “header” also encompasses footers. The payload data may itself comprise smaller data packets, each with its own payload section and header.
Errors in the transmission of data packets from transmitter to receiver, causing corrupted data packets, can be caused by various factors such as signal interference or signal noise. A typical way to detect transmission errors involves the use of a cyclic redundancy check (CRC) field in the header. CRC generation, by the transmitter, involves calculating a number, called a checksum, also known as parity bits, based on a payload section, and appending that checksum to the payload section for transmission to the receiver. CRC checking, by a receiver, involves calculating a checksum based on the received payload section and comparing that receiver-calculated checksum to the appended checksum, and if the two checksums do not match, then determining that a transmission error has occurred. Numerous algorithms for generating a checksum for a data packet exist.
It should be noted that it is possible for a transmission error to affect only the checksum, whereby the payload data is correctly received, but the corresponding data packet is nevertheless determined to be in error. Conversely, even if the two checksums do match, the transmitted payload data is not necessarily error-free as multiple errors can cancel the CRC effects of each other, thereby making it appear as if no errors occurred.
If the receiver determines that a transmission error occurred, then the receiver can request the transmitter to retransmit the affected data packet. Retransmissions reduce the overall throughput of the communication system, and systems and methods that reduce the number of retransmissions necessitated by corrupted data packets are useful.